package com.aloha.springframework.beans.factory.support;

import com.aloha.springframework.beans.factory.config.BeanDefinition;

import java.util.List;

/**
 * @author DaiZhiHeng
 * @description 用于保存Bean注册信息的注册中心
 * @date 2023/6/27 20:39
 */
public interface BeanDefinitionRegistry {

    /**
     * 注册BeanDefinition
     *
     * @param beanName       Bean在容器中的名字
     * @param beanDefinition 创建Bean所需的定义信息
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

    /**
     * 判断容器中是否有名为beanName的对象
     *
     * @param beanName Bean的名称
     * @return boolean
     */
    boolean containsBeanDefinition(String beanName);

    /**
     * 返回注册中心中所有的BeanName
     *
     * @return BeanNames
     */
    String[] getBeanDefinitionNames();
}
